package com.mall.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mall.system.entity.UserRole;

import java.util.List;
import java.util.Set;

/**
 * 用户角色关联服务接口
 */
public interface UserRoleService extends IService<UserRole> {
    
    /**
     * 根据用户ID查询角色ID列表
     * 
     * @param userId 用户ID
     * @return 角色ID列表
     */
    List<Long> selectRoleIdsByUserId(Long userId);
    
    /**
     * 根据角色ID查询用户ID列表
     * 
     * @param roleId 角色ID
     * @return 用户ID列表
     */
    List<Long> selectUserIdsByRoleId(Long roleId);
    
    /**
     * 根据用户ID列表查询角色ID列表
     * 
     * @param userIds 用户ID列表
     * @return 角色ID列表
     */
    Set<Long> selectRoleIdsByUserIds(List<Long> userIds);
    
    /**
     * 根据用户ID更新角色
     * 
     * @param userId  用户ID
     * @param roleIds 角色ID列表
     * @return 是否成功
     */
    boolean updateUserRole(Long userId, List<Long> roleIds);
    
    /**
     * 批量更新用户角色
     * 
     * @param userIds 用户ID列表
     * @param roleId  角色ID
     * @return 是否成功
     */
    boolean batchUpdateUserRole(List<Long> userIds, Long roleId);
}